﻿/////Tạo tab/////////////////////////////////////////////////
function addTab(tabPanel, id, url, title) {
    var tab = tabPanel.getComponent(id);
    if (!tab) {
        tab = tabPanel.add({
            id: id,
            title: title,
            closable: true,
            autoLoad: {
                // showMask: true,
                url: url,
                renderer: "frame"
                // maskMsg: ' Đang nạp dữ liệu, vui lòng chờ...'
            }
        });
        tab.on('activate', function () {
            //var item = MenuPanel1.menu.items.get(id + "_item");
            //                    if (item) {
            ////                        MenuPanel1.setSelection(item);
            //                    }
        }, this);
    }
    tabPanel.setActiveTab(tab);
    return tab;
}


function reLoadActiveTab() {
    Ext.WindowMgr.getActive().destroy();
    var tabPanel = Ext.getCmp('pnTabPanel');
    var tab = tabPanel.getActiveTab();
    var frameLocation = tab.getEl().select('iframe').first().dom.contentWindow.reLoadData();

}

// Hàm thêm mới một item từ danh sách trang chi tiết
function addItem(id) {
    Ext.WindowMgr.getActive().destroy();
    var tabPanel = Ext.getCmp('pnTabPanel');
    var tab = tabPanel.getActiveTab();
    var frameLocation = tab.getEl().select('iframe').first().dom.contentWindow.addItem(id);

};
// Hàm xóa một item từ danh sách trang chi tiết
function deleteItem(id) {
    try {
        Ext.WindowMgr.getActive().destroy();
    } catch (Error) { }
    var tabPanel = Ext.getCmp('pnTabPanel');
    var tab = tabPanel.getActiveTab();
    var frameLocation = tab.getEl().select('iframe').first().dom.contentWindow.deleteItem(id);

};
// Hàm sửa một item từ danh sách trang chi tiết
function editItem(id) {
    Ext.WindowMgr.getActive().destroy();
    var tabPanel = Ext.getCmp('pnTabPanel');
    var tab = tabPanel.getActiveTab();
    var frameLocation = tab.getEl().select('iframe').first().dom.contentWindow.editItem(id);

};
// Hàm thông báo thêm mới yêu cầu thành công
function addRequest(msg) {
    Ext.WindowMgr.getActive().destroy();
    var tabPanel = Ext.getCmp('pnTabPanel');
    var tab = tabPanel.getActiveTab();
    var frameLocation = tab.getEl().select('iframe').first().dom.contentWindow.addRequest(msg);
};
// Hàm đóng window đang mở và hiện nội dung thông báo báo cáo kết quả công việc thành công
function reportResult(msg) {
    Ext.WindowMgr.getActive().destroy();
    var tabPanel = Ext.getCmp('pnTabPanel');
    var tab = tabPanel.getActiveTab();
    var frameLocation = tab.getEl().select('iframe').first().dom.contentWindow.reportResult(msg);
    Ext.WindowMgr.getActive().destroy();
};
// Hàm đóng window đang mở và hiện nội dung thông báo cập nhật báo cáo kết quả công việc thành công
function updateResult(msg) {
    Ext.WindowMgr.getActive().destroy();
    var tabPanel = Ext.getCmp('pnTabPanel');
    var tab = tabPanel.getActiveTab();
    var frameLocation = tab.getEl().select('iframe').first().dom.contentWindow.updateResult(msg);
};
// Hàm đóng window đang mở và hiển thị nội dung thông báo cập nhật chuyển giao việc thành công
function forwardItem(msg) {
    Ext.WindowMgr.getActive().destroy();
    var tabPanel = Ext.getCmp('pnTabPanel');
    var tab = tabPanel.getActiveTab();
    var frameLocation = tab.getEl().select('iframe').first().dom.contentWindow.forwardItem();
};
// Toggle tab (đóng Tab, mở tab khác nếu chưa có hoặc reload lại tab nếu đã tồn tại)//
function toggleTab(closeId, openId, url, title) {
    var tabPanel = Ext.getCmp('pnTabPanel');
    var tab = tabPanel.getComponent(closeId);
    if (tab != null) { tabPanel.remove(tab); }
    addDefaultTab(openId, url, title);
}


///// Toggle tab (đóng Tab, mở tab khác nếu chưa có hoặc reload lại tab nếu đã tồn tại)////////////////////
function toggleTab(openId, url, title) {
    //toggleTab(openId, openId, url, title);
}

function closeTab(closeId) {
    var tabPanel = pnTabPanel;
    var tab = tabPanel.getComponent(closeId);
    if (tab != null) { tabPanel.remove(tab); }
}

/////Điều khiển Windows/////////////////////////////////////////////////        
function wdCommonController(title, url) {
    var win = wdCommon;
    win.height = 2000;
    win.width = 2000;
    win.setTitle(title);
    win.autoLoad.url = url;
    win.show();
}

function closeWindow(openId, url, title) {

    var win = eval("new_window");
    win.destroy();

    addDefaultTab(openId, url, title);
}

function closeWindow1() {
    var win = eval("new_window");
    win.destroy();

}
function closeWindowbyid(id) {
    var win = eval(id);
    win.destroy();

}
//////////// Create new window ///////////////////////////////////////
function newWindow(url, config) {
    new Ext.Window(Ext.apply({
        renderTo: Ext.getBody(),
        resizable: false,
        border: false,
        modal: false,
        closable: true,
        layout: "fit",
        maximizable: false,
        constrain: true,
        closeAction: "destroy",
        frame: true,
        id: Math.floor(Math.random() * 101086).toString(), // "new_window",
        destroyCallback: function () { return; },
        listeners: {
            beforeshow: {
                fn: function (el) {
                    var height = Ext.getBody().getViewSize().height;
                    var width = Ext.getBody().getViewSize().width;
                    if (el.getSize().height > height) {
                        el.setHeight(height - 20)
                    }
                    if (el.getSize().width > width) {
                        el.setWidth(width - 100);
                    }
                }

            },
            destroy: {
                fn: function (el) {
                    el.destroyCallback();
                }
            }
        },
        //        buttons: [
        //            {
        //                text: "Đóng",
        //                iconCls: "icon-accept",
        //                handler: function () {
        //                    this.findParentByType("window").destroy();
        //                }
        //            }
        //        ],
        autoLoad: {
            maskMsg: "Đang tải dữ liệu, vui lòng chờ...",
            showMask: true,
            renderer: "frame",
            url: url
        }
    }, config)).show();
}

///Create newWindow Report
function newWindowReport(url, config) {
    new Ext.Window(Ext.apply({
        renderTo: Ext.getBody(),
        resizable: false,
        closable: false,
        layout: "fit",
        maximizable: true,
        constrain: true,
        closeAction: "destroy",
        frame: true,
        id: "new_window",
        listeners: {
            beforeshow: {
                fn: function (el) {
                    var height = Ext.getBody().getViewSize().height;
                    var width = Ext.getBody().getViewSize().width;
                    if (el.getSize().height > height) {
                        el.setHeight(height - 10)
                    }
                    if (el.getSize().width > width) {
                        el.setWidth(width - 20);
                    }
                }

            }
        },
        //        buttons: [
        //            {
        //                text: "Đóng",
        //                iconCls: "icon-accept",
        //                listeners: {
        //                    click: {
        //                        fn: function (el, e) {
        //                            var win = eval("new_window");
        //                            win.destroy();
        //                        }
        //                    }
        //                }
        //            }
        //        ],
        autoLoad: {
            maskMsg: "Đang tải dữ liệu, vui lòng chờ...",
            showMask: true,
            renderer: "frame",
            url: url
        }
    }, config)).show();
}


/////Điều khiển Windows  [Thêm Callback function ] /////////////////////////////////////////////////        
function wdCommonControllerWithCallback(title, url, callback) {
    var win = wdCommon;
    win.setTitle(title);
    win.autoLoad.url = url;
    var call = function () { win.parent.eval(callback) };
    win.addListener('hide', call);
    win.show();
}

function reloadTab(tagId, typeTag) {
    Ext.net.DirectMethods.ReloadTab(tagId, typeTag);
}
///Không load lại tab và thực hiện thông báo
function showMessage(title, msg, idTab) {
    Ext.WindowMgr.getActive().destroy();
    Ext.net.Notification.show({
        bringToFront: true,
        pinEvent: 'click',
        alignToCfg: {
            offset: [-10, -10],
            position: 'br-br',
            el: Ext.net.getEl(idTab)
        },
        html: msg,
        title: title
    });
}
function reLoadActiveTabWithParameter(type) {
    var tabPanel = Ext.getCmp('pnTabPanel');
    var tab = tabPanel.getActiveTab();
    Ext.get(tab.id + "_IFrame").dom.contentWindow.reLoadDataParameter(type);
    Ext.WindowMgr.getActive().destroy();

}

//Set display datetime in grid
var date = function (value, p, record) {

    if (value == null) return "";
    value = value.replace(" ", "T");
    var temp = value.split("T");
    var date = temp[0].split("-");
    var dateStr = date[2] + "/" + date[1] + "/" + date[0];
    return dateStr;
}


//cat khoang trang
var trim = function (value) {
    return value.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}